#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#

cmake_minimum_required (VERSION 2.8.7)

project (Examples)

# drain and spout have explicit Boost.program_options usage in them, so be
# sure that lib is linked in.

macro(add_messaging_example example)
  add_executable(${example} ${example}.cpp OptionParser.cpp)
  set_target_properties(${example} PROPERTIES OUTPUT_NAME ${example})
  target_link_libraries(${example} qpidtypes qpidmessaging ${_boost_libs_needed})
  # For installs, don't install the built example; that would be pointless.
  # Install the things a user needs to build the example on-site.
  install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/${example}.cpp
                  ${CMAKE_CURRENT_SOURCE_DIR}/OptionParser.h
                  ${CMAKE_CURRENT_SOURCE_DIR}/OptionParser.cpp
           DESTINATION ${QPID_INSTALL_EXAMPLESDIR}/messaging
           COMPONENT ${QPID_COMPONENT_EXAMPLES})
  if (MSVC)
    install (FILES ${CMAKE_CURRENT_SOURCE_DIR}/messaging_${example}.vcproj
             DESTINATION ${QPID_INSTALL_EXAMPLESDIR}/messaging
             COMPONENT ${QPID_COMPONENT_EXAMPLES})
  endif (MSVC)

endmacro(add_messaging_example)

add_messaging_example(drain)
add_messaging_example(spout)

add_messaging_example(map_receiver)
add_messaging_example(map_sender)

add_messaging_example(client)
add_messaging_example(server)

# These don't need Boost or OptionParser
add_executable(hello_world hello_world.cpp)
set_target_properties(hello_world PROPERTIES OUTPUT_NAME hello_world)
target_link_libraries(hello_world qpidmessaging qpidtypes)

add_executable(hello_xml hello_xml.cpp)
set_target_properties(hello_xml PROPERTIES OUTPUT_NAME hello_xml)
target_link_libraries(hello_xml qpidmessaging qpidtypes)
